package main

/**
 * @Author: DengLibin
 * @Date: Create in 2023-01-12 13:55:49
 * @Description:
 你和你的朋友，两个人一起玩 Nim 游戏：

桌子上有一堆石头。
你们轮流进行自己的回合， 你作为先手 。
每一回合，轮到的人拿掉 1 - 3 块石头。
拿掉最后一块石头的人就是获胜者。
假设你们每一步都是最优解。请编写一个函数，
来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢，返回 true；否则，返回 false 。
示例 1：

输入：n = 4
输出：false
解释：以下是可能的结果:
1. 移除1颗石头。你的朋友移走了3块石头，包括最后一块。你的朋友赢了。
2. 移除2个石子。你的朋友移走2块石头，包括最后一块。你的朋友赢了。
3.你移走3颗石子。你的朋友移走了最后一块石头。你的朋友赢了。
在所有结果中，你的朋友是赢家。
*/

/**
* @Author: DengLibin
* @Date: Create in 2023-01-12 14:17:42
* @Description:
分析：我要赢则需要保证最后一次我拿的时候只能剩1-3块，
即 倒数第二次对方拿的时候不论怎么拿 都会剩下1-3块，即对方拿的时候只能是4块
倒数第三次我拿的时候要保证拿完后剩下4块，那么这次只能有5到7块，要保证这次只能有5到7块
倒数第四次对方拿的时候只能是8块...

结论: 我先拿，只要保证我拿完后剩下的数是4的倍数，最后我就能赢，即我拿的时候 总数不能是4的倍数
*/
func canWinNim(n int) bool {
	return n%4 != 0
}
